﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace magic8ballUtility.Sintaksa
{
    [Serializable]
    public class Definicija
    {
        public List<Produkcija> Produkcije { get; set; }
        public Dictionary<int, Dictionary<string, string>> TablicaAkcija { get; set; }
        public Dictionary<int, Dictionary<string, string>> TablicaNovoStanje { get; set; }
        public HashSet<string> SinkronizacijskiZnakovi { get; set; }

        //public Definicija(Generator generator)
        //{
        //    this.Produkcije = generator.gramatika.Produkcije;
        //    this.TablicaAkcija = generator.tablicaAkcija;
        //    this.TablicaNovoStanje = generator.tablicaNovoStanje;
        //    this.SinkronizacijskiZnakovi = generator.gramatika.SinkronizacijskiZnakovi;
        //}

        public Definicija(UlaznaSintaksa ulaznaSintaksa, Dictionary<int, Dictionary<string, string>> tablicaAkcija, Dictionary<int, Dictionary<string, string>> tablicaNovoStanje)
        {
            this.Produkcije = ulaznaSintaksa.Produkcije;
            this.TablicaAkcija = tablicaAkcija;
            this.TablicaNovoStanje = tablicaNovoStanje;
            this.SinkronizacijskiZnakovi = ulaznaSintaksa.SinkronizacijskiZnakovi;
        }
    }

    [Serializable]
    public class Produkcija
    {
        public string Glava { get; set; }
        public string Tijelo { get; set; }

        public Produkcija(string glava, string tijelo)
        {
            this.Glava = glava;
            this.Tijelo = tijelo;
        }

        public override string ToString()
        {
            return this.Glava + " -> " + this.Tijelo;
        }

    }

}
